Only push uuids of newly enabled extensions to the `_extensionOrder`
array if enabling them was successful.
Otherwise, since `_callExtensionDisable()` doesn't remove uuids that
weren't successfully enabled from the array, those extensions get added
to the array multiple times when they're disabled and enabled.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
if (extension.state != ExtensionState.DISABLED)
return;
- this._extensionOrder.push(uuid);
-
let stylesheetNames = [`${global.session_mode}.css`, 'stylesheet.css'];
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
for (let i = 0; i < stylesheetNames.length; i++) {
try {
extension.stateObj.enable();
extension.state = ExtensionState.ENABLED;
+ this._extensionOrder.push(uuid);
this.emit('extension-state-changed', extension);
} catch (e) {
if (extension.stylesheet) {